package java_thinking.unit_18_IO._18_10;

import java.nio.ByteBuffer;
import java.nio.IntBuffer;

/**
 * @Desc:   视图缓冲：可以通过某个特定的基本数据类型的视窗查看其底层的ByteBuffer。对试图的修改会映射成对ByteBuffer中数据的修改
 *                  试图还允许我们从ByteBuffer一次一个的或者呈批的读取基本类型值；
 * @author: cww
 * @DateTime: 2019/5/17 19:30
 */

public class InBufferDemo {
    private static final int BSIZE = 1024;

    public static void main(String[] args) {
        ByteBuffer bb = ByteBuffer.allocate(BSIZE);
        IntBuffer ib = bb.asIntBuffer();
        ib.put(new int[]{11,42,47,99,143,811,1016});
        System.out.println(ib.get(3));
        //直接用put和get访问绝对位置的方式同样适用与基本类型
        ib.put(3, 1811);
        ib.flip();
        while (ib.hasRemaining()) {
            int i = ib.get();
            System.out.println(i);
        }
    }
}
